const express = require('express');

const jwt = require( 'jsonwebtoken' );

const tokenConfig = require( '../config/token.js' );

const router = express.Router();

router.all( '/customer/welcome' , (req,resp)=>{
  console.log( req.method , req.url , req.user );
  if( req.user ) {
    resp.json( { login: true , message: `欢迎${req.user.username}` } );
    return ;
  }
  resp.json( { login: false , message: `你还没有登录哦` } );
});

router.post( '/customer/sign/in' , (req,resp,next) =>{
  console.log( req.method , req.url , req.user );
  // 数据校验
  next();
}, (req,resp)=>{
  // 解构赋值 ( ES6提供的支持 )
  let { username , password } = req.body ;
  // 注意这里暂时没有访问数据库
  if( 'kaifamiao' == username && 'hello2022' == password ){
    // 创建一个纯对象(没有原型不继承Object)
    let pureObject = Object.create(null);
    // 在新创建的纯对象上动态添加属性
    pureObject.username = username ;

    // 注意第一个参数 pureObject 需要是个纯对象
    const token = 'Bearer ' + jwt.sign( 
      pureObject , 
      tokenConfig.secret , 
      { expiresIn: 3600 } ,
      { algorithm: tokenConfig.algorithm }
    );

    resp.json( token );

    return ;
  }
  resp.json( { success: false , message: '登录失败' } );
});

module.exports = router;
